package com.itrencai.d4_date.lambda;

import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Arrays;
import java.util.Comparator;

public class LambdaDemo {
    public static void main(String[] args) {
        Integer[] ages1={34,12,42,23};
        Arrays.sort(ages1,new Comparator<Integer>(){
            @Override
            public int compare(Integer o1, Integer o2) {
                return o1-o2;//默认升序
            }
        });
/*        System.out.println(Arrays.toString(ages1));
        //简化形式
        Arrays.sort(ages1,(Integer o1, Integer o2) ->{
                return o2-o1;//自定义降序
        });*/
        //再简化 参数类型可以省略
//        Arrays.sort(ages1,( o1,  o2) ->{
//            return o2-o1;//自定义降序
//        });
        //再简化
        //lambda表达式方法体只有一行代码，可以省略大括号不写，同时省略分号
        //如果这行代码是return语句，省略return不写，同时省略分号

        //这就是最后的降序代码
        Arrays.sort(ages1,( o1,  o2) -> o2-o1);



        System.out.println(Arrays.toString(ages1));
        System.out.println("------------------------------");
        JFrame win=new JFrame("登录页面");
        JButton btn=new JButton("我是一个很大的按钮");
/*        btn.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                System.out.println("有人点我，点我，点我！！！");
            }
        });*/
        //简化形式
        btn.addActionListener((ActionEvent e) ->{
            System.out.println("有人点我，点我，点我！！！");

        });
        //再简化 如果只有一个参数，参数类型可以省略，（）也可以省略
        //lambda表达式方法体只有一行代码，可以省略大括号不写，同时省略分号
       // btn.addActionListener(e -> System.out.println("有人点我，点我，点我！！！"));

        win.add(btn);
        win.setSize(400,300);
        win.setVisible(true);
    }
}
